Skip to content

Conversation

grandizzy
Copy link
Collaborator

Motivation

Solution

  • use float total_cmp instead of partial_cmp to get a total order

PR Checklist

  • Added Tests
  • Added Documentation
  • Breaking changes

@grandizzy grandizzy added T-bug Type: bug C-forge Command: forge labels Mar 4, 2025
@grandizzy grandizzy changed the title fix(forge): use total cmp instead partial fix(forge): use float total cmp instead partial Mar 4, 2025
@grandizzy grandizzy marked this pull request as ready for review March 4, 2025 10:37
Copy link
Member

@zerosnacks zerosnacks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, makes sense 👍

@grandizzy grandizzy merged commit d3704ee into foundry-rs:master Mar 4, 2025
22 checks passed
@grandizzy grandizzy deleted the issue-10001 branch March 4, 2025 15:57
Dargon789 added a commit to Dargon789/foundry that referenced this pull request Mar 4, 2025
fix(forge): use total cmp instead partial

Co-authored-by: grandizzy <[email protected]>
Dargon789 added a commit to Dargon789/foundry that referenced this pull request Mar 4, 2025
Dargon789 added a commit to Dargon789/foundry that referenced this pull request Mar 4, 2025
@grandizzy grandizzy self-assigned this Mar 10, 2025
@grandizzy grandizzy moved this to Done in Foundry Mar 10, 2025
@grandizzy grandizzy moved this from Done to Completed in Foundry Mar 10, 2025
Dargon789 added a commit to Civilized-farms/foundry that referenced this pull request Apr 2, 2025
* fix: incorrect repo link in readme for foundry-compilers (#9660)

fix: incorrect repo link

* feat: add arm64 docker image (#9614)

* feat(docker): build arm64 image

Signed-off-by: jsvisa <[email protected]>

* wip

Signed-off-by: jsvisa <[email protected]>

* Revert "wip"

This reverts commit a152a4c30b7aa510b95d32d5dc8d8d655e90d7f0.

Signed-off-by: jsvisa <[email protected]>

* Revert "feat(docker): build arm64 image"

This reverts commit 09adcbc0f4129f74831588a7e1665a7064eea2f6.

Signed-off-by: jsvisa <[email protected]>

* feat(make): add cross docker build

Signed-off-by: jsvisa <[email protected]>

* feat(make): multi tags

Signed-off-by: jsvisa <[email protected]>

* feat(github): use cross build

Signed-off-by: jsvisa <[email protected]>

* add Dockerfile.cross

Signed-off-by: jsvisa <[email protected]>

* fix(make): don't recreate cross-builder

Signed-off-by: jsvisa <[email protected]>

* make: add log

Signed-off-by: jsvisa <[email protected]>

* fix: missing \

Signed-off-by: jsvisa <[email protected]>

* typo

Signed-off-by: jsvisa <[email protected]>

* Update docker-publish.yml

Co-authored-by: DaniPopes <[email protected]>

---------

Signed-off-by: jsvisa <[email protected]>
Co-authored-by: DaniPopes <[email protected]>

* chore: fix test isolate, different address for caller (#9663)

* fix: set debug none for release profile (#9664)

* chore(deps): weekly `cargo update` (#9668)

Locking 41 packages to latest compatible versions
    Updating alloy-chains v0.1.54 -> v0.1.55
    Updating async-trait v0.1.84 -> v0.1.85
    Updating aws-sdk-sts v1.54.0 -> v1.54.1
    Updating bitflags v2.6.0 -> v2.7.0
    Updating cc v1.2.7 -> v1.2.8
    Updating clap v4.5.23 -> v4.5.26
    Updating clap_builder v4.5.23 -> v4.5.26
    Updating clap_complete v4.5.40 -> v4.5.42
    Updating clap_derive v4.5.18 -> v4.5.24
    Updating handlebars v6.2.0 -> v6.3.0
    Updating inferno v0.12.0 -> v0.12.1
    Updating instability v0.3.6 -> v0.3.7
      Adding itertools v0.14.0
    Updating linux-raw-sys v0.4.14 -> v0.4.15
    Updating nybbles v0.3.3 -> v0.3.4
    Updating op-alloy-consensus v0.9.0 -> v0.9.2
    Updating op-alloy-rpc-types v0.9.0 -> v0.9.2
    Updating phf v0.11.2 -> v0.11.3
    Updating phf_codegen v0.11.2 -> v0.11.3
    Updating phf_generator v0.11.2 -> v0.11.3
    Updating phf_macros v0.11.2 -> v0.11.3
    Updating phf_shared v0.11.2 -> v0.11.3
    Updating pin-project v1.1.7 -> v1.1.8
    Updating pin-project-internal v1.1.7 -> v1.1.8
    Updating pin-project-lite v0.2.15 -> v0.2.16
    Updating prettyplease v0.2.25 -> v0.2.27
    Updating proc-macro2 v1.0.92 -> v1.0.93
    Updating revm v19.0.0 -> v19.2.0
    Updating rustix v0.38.42 -> v0.38.43
    Updating rustls v0.23.20 -> v0.23.21
    Updating security-framework v3.1.0 -> v3.2.0
    Updating security-framework-sys v2.13.0 -> v2.14.0
    Updating serde_json v1.0.134 -> v1.0.135
      Adding siphasher v1.0.1
    Updating syn v2.0.94 -> v2.0.96
    Updating thiserror v2.0.9 -> v2.0.11
    Updating thiserror-impl v2.0.9 -> v2.0.11
    Updating tokio v1.42.0 -> v1.43.0
    Updating tokio-macros v2.4.0 -> v2.5.0
    Updating uuid v1.11.0 -> v1.11.1
    Updating winnow v0.6.22 -> v0.6.24
note: pass `--verbose` to see 12 unchanged dependencies behind latest

Co-authored-by: mattsse <[email protected]>

* chore(clippy): use next_back instead of last for DoubleEndedIterator (#9666)

* chore(clippy): use next_back instead of last for DoubleEndedIterator

Signed-off-by: jsvisa <[email protected]>

* more cases

Signed-off-by: jsvisa <[email protected]>

* last -> next_back

Signed-off-by: jsvisa <[email protected]>

* len ==0 => is_empty

Signed-off-by: jsvisa <[email protected]>

---------

Signed-off-by: jsvisa <[email protected]>

* fix: error handling with retries when waiting for receipt (#9650)

* fix: error handling with retries when waiting for receipt

* Add RetryError::Continue variant, rework receipts tx check

* chore: use "full" for debug (#9670)

* chore: don't warn in RetryError::Continue (#9671)

* test: increase nextest backoff (#9672)

* fix(`script`): use fork_block_number for init sender nonce (#9669)

* fix(`script`): use fork_block_number for init sender nonce

* test

* feat(foundryup): add foundryup self-update (#9609)

* feat(foundryup):: add self-update

Signed-off-by: 9547 <[email protected]>

* renmae to --update

Signed-off-by: 9547 <[email protected]>

* download to tmp file first

Signed-off-by: 9547 <[email protected]>

---------

Signed-off-by: 9547 <[email protected]>

* fix(`config`): enable `optimizer` when `optimizer_runs` set in config (#9673)

* fix(`config`): enable optimizer if `optimizer_runs` has been set

* test

* fix(`config`): change optimizer properties to Option

* fix

* nit

Co-authored-by: DaniPopes <[email protected]>

* fix

* nit

---------

Co-authored-by: DaniPopes <[email protected]>

* fix: propagate color config to TraceWriter (#9679)

* feat(foundryup): check for running processes (#9680)

* chore: add version number to `foundryup` (#9681)

* add version number, display using --version

* use say instead of echo

* add input box for foundryup version to bug template

* fix(config): normalize optimizer settings (#9689)

* ci: use reusable cargo update workflow (#9690)

* chore(deps): bump svm 0.5.10 (#9700)

* fix(verify): strip profile from contract name (#9699)

* feat(`forge`): `--watch` coverage (#9702)

* feat: filter by profile in `vm.getCode` (#9714)

feat: filter by profile in getCode

* feat(chisel): determine proper path to Vm.sol based on proj remappings (#9703)

* chore(deps): weekly `cargo update` (#9715)

* Fix rewrite of User-Agent header (#9707)

* Fix rewrite of User-Agent header

* add test

* add axym to dev deps

* format

* format

* format

* cleanup

* cleanup

* review fixes

* use localhost address

* refactor: properly handle config load errors (#9713)

* refactor: properly handle config load errors

* fix

* doc

* chore: bump version to 0.3.1 to make it easier to identify non-stable builds (#9718)

* bump version number

* bump lockfile

* fix(invariant): handle simple contract names in metrics table (#9724)

* chore: display warning to user if running `nightly` version (#9683)

* use shared compile time version builder

* add warning message on nightly builds

* display warning on nightly builds

* derive nightly build from tag name

* no need to pass IS_NIGHTLY in, derive from tag name

* update warning message

* fix rustfmt

* fix clippy

* clean up, default to always use `-dev` if not on tag

* provide way for users to mute the warning by setting a FOUNDRY_DISABLE_NIGHTLY_WARNING environment variable

* fix fmt

* add profile to version

* fix clippy

* fix fmt

* remove redundant build_timestamp as it is unused

* unify build scripts, update cheatcodes build script, fix vm.getFoundryVersion() cheatcode

* fix clippy

* build timestamp not needed anymore, move to use single build script in foundry_common and export from there

* clean up

* add timestamp due to users / documentation relying on it

* use verbose message format for cli --version, use SemVer compatible unix timestamp for cheatcode, fix nits

* make IS_NIGHTLY_VERSION conditional

* use semver for cheatcode

* fix test

* fix value

* forge fmt

* nits, update getFoundryVersion cheatcode docs

* fix incorrect version passed to forge cli, add unix timestamp to human readable --version

* add tests, add short version / long version, address feedback

* prefer build_timestamp for short version too

* fixes, add anvil tests for parsing

* add back unix timestamp in full version

* fix semver test

* fix(forge): allow install private deps with https and gh token (#9726)

fix(forge): allow install deps with https and gh token

* fix: release process (#9728)

* fix env variable of tag name location

* make tag name more robust, not just matching on strict "nightly" but containing nightly

* prefer using short version in foundryup to avoid cluttering stdout

* pass in tag name (cast to `nightly` if nightly build) during Docker build process

* requires prepare step

* use with instead of env

* env not available in step

* fix build tag

* add test tag for Docker

* pass down tag_name into Dockerfile.cross

* revert docker specific changes, do that as a follow up to unblock

* avoid whitespace diff

* feat: allow remapping of solidity files (#9604)

* feat(remapping): support remapping of .sol files

Signed-off-by: jsvisa <[email protected]>

* feat(remapping): add testcase

Signed-off-by: jsvisa <[email protected]>

* typo

Signed-off-by: jsvisa <[email protected]>

---------

Signed-off-by: jsvisa <[email protected]>

* fix(`forge`): disable artifacts for coverage (#9692)

* feat(`forge`): diff artifacts dir for coverage

* nit

* nit

* flip `no_artifacts` to true

* nit

* fix: respect `disable_block_gas_limit` config key (#9732)

fix

* chore: bump compilers (#9735)

* feat(cheatcodes): add ability to ignore (multiple) specific and partial reverts in fuzz and invariant tests (#9179)

* initial pass

add support for multiple reasons, add tests

appease clippy

fix broken tests; fix some assume behavior

remove comment and bad error-surfacing logic

remove redundant param, rename revert.rs, create sol test file

remove unnecessary tests from both test_cmd and AssumeNoRevert.t.sol

use empty vec instead of option<vec>; remove commented test

remove assumeNoPartialRevert; update assumeNoPartialRevert

Simplify test, use snapbox assertion

Redact number of runs

implement assume_no_revert change

* rebase and refactor

* fix tests for overloaded; original failing

* remove erroneous return type

* appease clippy

* allow combining expectRevert with assumeNoRevert

* Apply suggestions from code review

nit

* remove magic string const

* fix error string

* improve invariant selectors weight test

* nit

---------

Co-authored-by: zerosnacks <[email protected]>
Co-authored-by: grandizzy <[email protected]>

* fix: use custom build profile in --version (#9733)

* feat(script): show the broadcasted transactions when verbose>=4 (#9655)

* feat(script): add --dry-run

Signed-off-by: jsvisa <[email protected]>

* feat(script): implement the tx print

Signed-off-by: jsvisa <[email protected]>

* no newline if no args

Signed-off-by: jsvisa <[email protected]>

* clippy

Signed-off-by: jsvisa <[email protected]>

* add --dry-run --broadcast testcase

Signed-off-by: jsvisa <[email protected]>

* lossy stdout test

Signed-off-by: jsvisa <[email protected]>

* feat(script): print txs if --dry-run

Signed-off-by: jsvisa <[email protected]>

* feat(script): make dry-run as the default behavior

Signed-off-by: jsvisa <[email protected]>

* fix

Signed-off-by: jsvisa <[email protected]>

* use writeln instead of push_str

Signed-off-by: jsvisa <[email protected]>

* implment UIfmt for TransactionMaybeSigned

Signed-off-by: jsvisa <[email protected]>

* dryrun: use UIfmt instead

Signed-off-by: jsvisa <[email protected]>

* dryrun: print contract only if call

Signed-off-by: jsvisa <[email protected]>

* use [..] to test

Signed-off-by: jsvisa <[email protected]>

* update testcase

Signed-off-by: jsvisa <[email protected]>

* feat(script): --dry-run --resume

Signed-off-by: jsvisa <[email protected]>

* no long input

Signed-off-by: jsvisa <[email protected]>

* no double newline

Signed-off-by: jsvisa <[email protected]>

Revert "no double newline"

This reverts commit 6337995e4735b7cb2965962d6a7cd29addf367f7.

Signed-off-by: jsvisa <[email protected]>

wip

Signed-off-by: jsvisa <[email protected]>

* print transaction if -vvvv

Signed-off-by: jsvisa <[email protected]>

* Revert "update testcase"

This reverts commit ed5201c78e61863a32cec46a5b52c8934ab539d7.

Signed-off-by: jsvisa <[email protected]>

* update test for -vvvv broadcast

Signed-off-by: jsvisa <[email protected]>

* no dryrun module

Signed-off-by: jsvisa <[email protected]>

* test

Signed-off-by: jsvisa <[email protected]>

---------

Signed-off-by: jsvisa <[email protected]>
Co-authored-by: zerosnacks <[email protected]>

* chore: remove redundant `test.sol` (#9736)

remove redundant test.sol, follow up of https://github.com/foundry-rs/foundry/pull/9179

* chore: pass and read tag as `CARGO_TAG_NAME` for cross build (#9738)

* chore: pass and read tag as CARGO_TAG_NAME for cross build

* Nit

* fix(remappings): ignore conflicting remappings (#9521)

* fix(remappings): ignore conflicting remappings

* Fix test, redundant remappings are not allowed anymore

* feat(`forge`): inspect - default to pretty output (#9705)

* fix(`forge`): inspect - mk --pretty default

* print_table helper

* print table method-identifier

* print table errors

* print errors events

* nit

* fix

* rm pretty

* fix

* print abi as table

* fix test

* test

* nit

* clippy

* dedup helpers and tests

* fix

* fix(invariant): lookup fuzz interface abi by name or identifier (#9744)

* feat(foundryup): manage custom built versions (#9746)

* fix(foundryup): set proper version for use call (#9750)

* chore: stop supporting legacy console.sol signatures (#8910)

* feat: stop supporting legacy console.sol signatures

* chore: update console.sol in tests

* Fix test

---------

Co-authored-by: grandizzy <[email protected]>
Co-authored-by: grandizzy <[email protected]>

* chore(deps): weekly `cargo update` (#9755)

* fix(cheatcode): expect revert only for calls with greater depth than test (#9537)

* fix(cheatcode): expect revert only for calls with greater depth

* Add config to allow expect revert for internal calls

* Fix default config test

* Update crates/cheatcodes/src/inspector.rs

Co-authored-by: Matthias Seitz <[email protected]>

---------

Co-authored-by: Matthias Seitz <[email protected]>

* fix(`forge bind`): prefix keyword mod names with `r#` (#9761)

* fix(`forge bind`): prefix keyword mod names with r#

* nit

* is_ok

* feat(`cast source`): support alternative explorers (#9762)

* feat(`cast`): support alternative explorers in `source`

* fix

* fix

* feat: override the eyre display handler globally (#9766)

* feat: override the eyre display handler globally

* chore: install handler in anvil

* msg

* ci: set RUST_BACKTRACE=full (#9767)

* perf(coverage): use u32 for IDs, improve analysis (#9763)

* refactor(debugger): renames, less clones

* perf(coverage): use u32 for IDs, improve analysis

* perf: don't keep source maps around, shrink_to_fit

* chore: clippy

* fmt

* fix(coverage): keep EVM version when normalizing for ir-minimum (#9768)

* chore: update README for `1.0` (#9540)

* start adding new benchmarks and recording

* add benchmarks

* add solady compilation benchmark

* crop demo gif to scale better

* clean up

* fix morpho-blue integration test, skewed because of create2 mining

* add compilation comparison for openzeppelin

* add very basic getting started

* add basic examples for each tool

* clean up

* clean up

* use default MIT and Apache 2.0 licenses for auto-recognition by Github

* apply default format of license, using existing fields

* clean up, point to book as primary source rather than crates

* clean up dev docs

* spell fix

* clean up

* nits

* nits

* revert to previous license version, updated format was not necessary - possibly Github related data issue yesterday

* Apply suggestions from code review

Co-authored-by: DaniPopes <[email protected]>

* note dual support

* fix link to actions

Co-authored-by: Lubov66 <[email protected]>

* link directly to existing references rather than overviews

* add designed benchmarks

* improve size slightly

* use center alignment

* fix spacing

* fix spacing

* update image paths

* remove outdated Foundry docs, users should refer to the book

* remove outdated docs, Foundry book should serve as primary source until we actually focus on Foundry as a library

* move demo.gif, remove unused logo

* fix build

* update table in fmt, restore docs for crate

* try fixing rpc that is down

---------

Co-authored-by: DaniPopes <[email protected]>
Co-authored-by: Lubov66 <[email protected]>

* chore: remove ahash (#9769)

* chore(deps): breaking bumps (#9773)

* chore: install deps and create foundry user in cross built image (#9775)

* chore: fix isolate tests (#9776)

* fix: correctly set `gas_limit` reported by Anvil (#9774)

fix gas_limit reported by anvil

* fix(docker): revert to use ubuntu:22.04 as base image (#9777)

fix: use ubuntu:22.04

* fix(cheatcode): support new 7702 spec (#9779)

fix(cheatcode): update revm with support for updated 7702

* fix: avoid returning None for library addresses during fuzzing (#9771)

* avoid returning None for library addresses during fuzzing

* cargo fmt

* randomize address if it belongs to a deployed lib

* return early in happy path

* chore: fix clippy (#9790)

* feat(anvil): implement `anvil_rollback` (#9783)

* implement anvil_rollback

* PR improvements

---------

Co-authored-by: grandizzy <[email protected]>

* docs(cast): clean up index docs (#9792)

* feat: add `gas_snapshot_check` flag to config, fix `FORGE_SNAPSHOT_CHECK` behavior (#9791)

* add gas_snapshot_check configuration option w/ FORGE_SNAPSHOT_CHECK, checking for bool value - not just existence

* add additional test to display behaviour

* improve docs

* fix clippy

* improve test suite, tests all combinations exhaustively

* fix failing test

* fix nit

* small nits

* feat(`forge`): remove `testFail*` (#9574)

* debt(`forge`): deprecate `testFail*`

* fix tests using testFail*

* fix

* refactor: expect revert failures tests to cli

* rm `testFail` from ExpectRevert.t.sol
Moved to ExpectRevertFailures.t.sol in cli tests

* mv ExpectCall.t.sol failure tests to ExpectCallFailures.t.sol in forge cli tests

* mv ExpectEmit.t.sol `testFail` to ExpectEmitFailures.t.sol as cli test

* mv MemSafety failure tests

* fmt

* mv DSStyleTest failling assertion to cli test

* failure_assertions

* failing setup test

* multiple aftertInvariants

* multiple setups

* emit diff anonymous

* Err out on `testFail

* fix: test_core

* fix

* fix: test_logs

* fix: test_fuzz

* fix: repro_7481

* fix: testShouldFailRevertNotOnImmediateNextCall, mv to failure_assertions

* fix + forge fmt

* clippy

* chore: update and document external tests (#9644)

* rm `should_fail` from runner and TestFunctionKind

* update, document and add additional external tests

* remove newly added morpho for now

* fix

---------

Co-authored-by: Yash Atreya <[email protected]>

* ignore solmate tests

* nit

* rm should_fail from run_unit_test & run_fuzz_test

* fix fmt

* fmt

* forge fmt

* fix

* rm

* fix tests

* fix: repro_7238

* fix tests

* forge fmt

* fix: repro tests

* bump snekmate ext test

* revert snekmate bump

* bump snekmate

* Revert "bump snekmate"

This reverts commit a9e7568c6a0fea1533ab1e128a69da16df78f3c3.

* ignore ERC4626VaultTest in snekmate

* remove solmate ext_test

---------

Co-authored-by: zerosnacks <[email protected]>
Co-authored-by: zerosnacks <[email protected]>
Co-authored-by: grandizzy <[email protected]>

* fix: use sequence for rollback (#9795)

* chore: ignore solady CI failure in win (#9797)

* fix(trace_filter): allow params to be object or array with len 1 (#9793)

fix(trace_filter): change params objects to deserialize only an array

* chore: point forge-std ext test to latest main (#9799)

chore: point forgestd ext to latest

* chore: generate release notes from latest stable (#9801)

* chore: update version numbers for `v1.0.0-rc` (#9802)

update version numbers for 1.0.0-rc

* feat(cast): update polygon testnet chain and add polygon zkevm chains (#9803)

* feat: add polygon-amoy chain and remove polygon-mumbai

* feat: add polygon zkevm mainnet and cardona testnet chains

* chore: ci release on rc tag (#9805)

* chore: update pull request template (#9804)

* chore(deps): weekly `cargo update` (#9809)

Locking 35 packages to latest compatible versions
    Updating alloy-chains v0.1.57 -> v0.1.58
   Unchanged alloy-consensus v0.9.2 (available: v0.11.0)
   Unchanged alloy-contract v0.9.2 (available: v0.11.0)
   Unchanged alloy-eips v0.9.2 (available: v0.11.0)
   Unchanged alloy-genesis v0.9.2 (available: v0.11.0)
   Unchanged alloy-json-rpc v0.9.2 (available: v0.11.0)
   Unchanged alloy-network v0.9.2 (available: v0.11.0)
   Unchanged alloy-node-bindings v0.9.2 (available: v0.11.0)
   Unchanged alloy-provider v0.9.2 (available: v0.11.0)
   Unchanged alloy-pubsub v0.9.2 (available: v0.11.0)
   Unchanged alloy-rpc-client v0.9.2 (available: v0.11.0)
   Unchanged alloy-rpc-types v0.9.2 (available: v0.11.0)
   Unchanged alloy-serde v0.9.2 (available: v0.11.0)
   Unchanged alloy-signer v0.9.2 (available: v0.11.0)
   Unchanged alloy-signer-aws v0.9.2 (available: v0.11.0)
   Unchanged alloy-signer-gcp v0.9.2 (available: v0.11.0)
   Unchanged alloy-signer-ledger v0.9.2 (available: v0.11.0)
   Unchanged alloy-signer-local v0.9.2 (available: v0.11.0)
   Unchanged alloy-signer-trezor v0.9.2 (available: v0.11.0)
   Unchanged alloy-transport v0.9.2 (available: v0.11.0)
   Unchanged alloy-transport-http v0.9.2 (available: v0.11.0)
   Unchanged alloy-transport-ipc v0.9.2 (available: v0.11.0)
   Unchanged alloy-transport-ws v0.9.2 (available: v0.11.0)
    Updating async-trait v0.1.85 -> v0.1.86
    Updating aws-sdk-kms v1.57.0 -> v1.58.0
    Updating aws-sdk-sso v1.56.0 -> v1.57.0
    Updating aws-sdk-ssooidc v1.57.1 -> v1.58.0
    Updating aws-sdk-sts v1.57.0 -> v1.58.0
   Unchanged axum v0.7.9 (available: v0.8.1)
   Unchanged backtrace v0.3.71 (available: v0.3.74)
    Updating bumpalo v3.16.0 -> v3.17.0
    Updating cc v1.2.10 -> v1.2.11
    Updating clap_complete v4.5.42 -> v4.5.44
    Updating dyn-clone v1.0.17 -> v1.0.18
   Unchanged foundry-fork-db v0.10.0 (available: v0.11.0)
   Unchanged gcloud-sdk v0.25.8 (available: v0.26.2)
      Adding getrandom v0.3.1
    Updating httparse v1.9.5 -> v1.10.0
    Updating hyper v1.5.2 -> v1.6.0
    Updating indicatif v0.17.9 -> v0.17.11
    Updating jiff v0.1.27 -> v0.1.28
    Updating mdbook v0.4.43 -> v0.4.44
    Updating miette v7.4.0 -> v7.5.0
    Updating miette-derive v7.4.0 -> v7.5.0
   Unchanged op-alloy-rpc-types v0.9.6 (available: v0.10.0)
    Removing phf_generator v0.10.0
    Removing phf_shared v0.10.0
   Unchanged proptest v1.5.0 (available: v1.6.0)
   Unchanged protobuf v3.3.0 (available: v3.7.1)
   Unchanged protobuf-support v3.3.0 (available: v3.7.1)
   Unchanged rand v0.8.5 (available: v0.9.0)
   Unchanged revm-inspectors v0.14.1 (available: v0.15.0)
    Updating rustls v0.23.21 -> v0.23.22
    Updating rustls-pki-types v1.10.1 -> v1.11.0
    Updating ryu v1.0.18 -> v1.0.19
    Updating serde_json v1.0.137 -> v1.0.138
    Removing siphasher v0.3.11
   Unchanged solang-parser v0.3.3 (available: v0.3.4)
    Updating string_cache v0.8.7 -> v0.8.8
    Updating string_cache_codegen v0.5.2 -> v0.5.3
    Updating svm-rs v0.5.10 -> v0.5.11
    Updating svm-rs-builds v0.5.10 -> v0.5.11
    Updating syn v2.0.96 -> v2.0.97
    Updating tempfile v3.15.0 -> v3.16.0
    Updating toml_edit v0.22.22 -> v0.22.23
    Updating unicode-ident v1.0.15 -> v1.0.16
   Unchanged vergen v8.3.2 (available: v9.0.4)
      Adding wasi v0.13.3+wasi-0.2.2
    Updating webpki-roots v0.26.7 -> v0.26.8
    Removing winnow v0.6.24
      Adding winnow v0.6.26
      Adding winnow v0.7.0
      Adding wit-bindgen-rt v0.33.0
note: to see how you depend on a package, run `cargo tree --invert --package <dep>@<ver>`

Co-authored-by: mattsse <[email protected]>

* chore: replace maili with op-alloy (#9810)

* chore(deps): bump alloy 0.11 (#9798)

* wip: bump alloy

* wip

* fix: unused fields

* fixes

* fmt

* chore: nextest config

* update tests

* update tests

* fix

---------

Co-authored-by: DaniPopes <[email protected]>

* chore(tests): bump forge-std version (#9808)

* chore: bump forge-std version used for tests

* Fix gas and bind test

---------

Co-authored-by: DaniPopes <[email protected]>
Co-authored-by: grandizzy <[email protected]>

* test: misc test improvements (#9812)

* more opts

* ignore can_disable_block_gas_limit

* move selector tests to integration tests

* reduce sleep

* rm unnecessary test, already tested with openchain/4byte commands

* rm needless_return allows

* chore: clippy

* move gas_report_fuzz_invariant to integration

* chore: tweak coverage warnings (#9814)

* test: update config with a closure (#9813)

* chore: update ext integration tests (#9811)

* chore: update ext integration tests

* Snekmate requires unreleased vyper 4.1

* fix(forge): allow `forge init --template` to work with `--no-commit` (#9815)

fix: allow init from template not commit

Co-authored-by: antazoey <[email protected]>

* feat(invariant): on failures show original and current sequence len (#9816)

* fix(cast): try decoding custom errors when execution reverted in cast send (#9794)

* fix(cast): try decoding custom errors when gas estimation in cast send

* Changes after review: use serde_json::from_str, use itertools format

* Nits

* More nits

* chore: remove rustls/openssl features (#9824)

* chore: fix base gas limit test (#9826)

* fix: mark metis as different gas calc (#9834)

* feat: add mathjax support to forge doc mdbook config (#9829)

* fix(foundryup): install for user names with empty space (#9835)

* feat(invariant): generate failed call sequence as solidity (#9827)

* feat(invariant): generate failed call sequence as solidity

* Fix test, format

* Tests nits

* chore: bump compilers, fix #9788 (#9836)

* feat: add way to disable emitting of gas snapshots to disk (#9710)

* feat: gas snapshot emit config

* review change comment

---------

Co-authored-by: turbocrime <[email protected]>

* chore(deps): weekly `cargo update` (#9843)

Locking 38 packages to latest compatible versions
    Updating alloy-chains v0.1.58 -> v0.1.59
    Updating alloy-trie v0.7.8 -> v0.7.9
    Updating aurora-engine-modexp v1.1.0 -> v1.2.0
    Updating aws-config v1.5.15 -> v1.5.16
    Updating aws-runtime v1.5.4 -> v1.5.5
    Updating aws-sdk-kms v1.58.0 -> v1.59.0
    Updating aws-sdk-sso v1.57.0 -> v1.58.0
    Updating aws-sdk-ssooidc v1.58.0 -> v1.59.0
    Updating aws-sdk-sts v1.58.0 -> v1.59.0
    Updating aws-sigv4 v1.2.7 -> v1.2.8
    Updating aws-smithy-runtime v1.7.7 -> v1.7.8
    Updating aws-smithy-types v1.2.12 -> v1.2.13
    Updating aws-types v1.3.4 -> v1.3.5
   Unchanged axum v0.7.9 (available: v0.8.1)
   Unchanged backtrace v0.3.71 (available: v0.3.74)
    Updating bytes v1.9.0 -> v1.10.0
    Updating cc v1.2.11 -> v1.2.13
    Updating clap v4.5.27 -> v4.5.28
    Updating clap_derive v4.5.24 -> v4.5.28
    Updating comfy-table v7.1.3 -> v7.1.4
      Adding const_format v0.2.34
      Adding const_format_proc_macros v0.2.34
   Unchanged derive_more v1.0.0 (available: v2.0.1)
   Unchanged evmole v0.6.2 (available: v0.7.0)
    Updating gcloud-sdk v0.26.2 -> v0.26.3
    Updating jiff v0.1.28 -> v0.1.29
    Updating jsonwebtoken v9.3.0 -> v9.3.1
    Updating once_cell v1.20.2 -> v1.20.3
    Updating op-alloy-consensus v0.10.0 -> v0.10.2
    Updating op-alloy-rpc-types v0.10.0 -> v0.10.2
    Updating parity-scale-codec v3.6.12 -> v3.7.4
    Updating parity-scale-codec-derive v3.6.12 -> v3.7.4
    Updating pin-project v1.1.8 -> v1.1.9
    Updating pin-project-internal v1.1.8 -> v1.1.9
   Unchanged proptest v1.5.0 (available: v1.6.0)
   Unchanged protobuf v3.3.0 (available: v3.7.1)
   Unchanged protobuf-support v3.3.0 (available: v3.7.1)
   Unchanged rand v0.8.5 (available: v0.9.0)
    Updating rustc-hash v2.1.0 -> v2.1.1
    Updating scc v2.3.0 -> v2.3.3
    Updating sdd v3.0.5 -> v3.0.7
   Unchanged solang-parser v0.3.3 (available: v0.3.4)
   Unchanged strum v0.26.3 (available: v0.27.0)
    Updating toml v0.8.19 -> v0.8.20
    Updating uuid v1.12.1 -> v1.13.1
   Unchanged vergen v8.3.2 (available: v9.0.4)
    Updating wait-timeout v0.2.0 -> v0.2.1
    Updating which v7.0.1 -> v7.0.2
    Updating winnow v0.7.0 -> v0.7.1
note: to see how you depend on a package, run `cargo tree --invert --package <dep>@<ver>`

Co-authored-by: mattsse <[email protected]>

* feat(`forge fmt`): add watch mode (#9838)

* feat(forge): add watch mode to forge fmt

* keen fmt run sync

* feat(`common`): `PathOrContractInfo` arg type  (#9770)

* feat(`common`): `PathOrContractInfo`

* fix

* docs

* nit

* test

* move find abi helper to ContractsByArtifact

* nit

* fix

* nit

* fix

* nit

* ensure sol file

* account for vyper contracts

* nit

* fix(forge): decode fallbacks with calldata (#9859)

* feat: add `--alloy-rev` and fix `forge bind` re-run on built project (#9861)

* add --alloy-rev, marked as conflicting with --alloy-version, updated --alloy-version to use crates.io whereas rev uses git

* fix forge bind upon re-run after crate was built

* clarify github / crates target

* minor doc fixes

* dedupe dep check

* fix fmt

* feat(forge): add option to suppress successful tests traces (#9865)

* chore(deps): bump alloy to `0.11.1` (#9866)

* chore: fix release flow (#9869)

fix release flow

* fix: pin to `macos-13-large` for release flow to support old SDK versions (#9870)

* fix release: Pin tonistiigi/binfmt iamge (#9872)

Pin tonistiigi/binfmt iamge

* chore: fix isolate tests (#9877)

* fix(anvil): return nonce and signature for deposit tx type (#9883)

* return nonce and signature for deposit tx type

* fix clippy

* feat(`forge`): don't commit installations by default (#9884)

* feat(`forge`)!: flip `no_commit` to `commit` + don't commit installations by default

* fix tests + always commit when initialized via template

* fix

* nit

* chore: fix flaky tests due to different totalDifficulty reported (#9889)

* fix(inspect): add flag to strip ir comments (#9825)

* fix(inspect): do not strip comments when yul print

* Update crates/forge/bin/cmd/inspect.rs

Co-authored-by: DaniPopes <[email protected]>

---------

Co-authored-by: DaniPopes <[email protected]>

* fix(forge): flatten fails on top-level event declarations (#9892)

* feat(`anvil`): emit warning server side on failing request (#9890)

* log error if request response fails

* use warning as it is not a server side failure but a failing client request

* prefer using node_info! macro

* improve error format

* chore(deps): weekly `cargo update` (#9898)

* fix: add support for inline `isolate` configuration (#9904)

* add test for inline isolate configuration

* clean up docs

* clarify

* prefer config, add comment

* fix(config): enable optimizer if optimizer runs > 0 in additional profiles (#9901)

* fix(config): enable optimizer if optimizer runs > 0 in additional profiles

* Improved test

* feat: bump `alpine=3.21` in Dockerfile (#9907)

* chore: update rpc keys (#9910)

remove keys

* feat(`cast age`): clarify block timestamp is UTC to allow for `date` compatibility (#9913)

clarify block timestamp is always UTC

* fix(`forge`): catch faulty test constructors (#9909)

* fix(`forge`): catch test contract deployment failures

* nit

* test

* fix

* nit

* Revert "nit"

This reverts commit 5712a93af62070c8879760e4b509bcdcf828d79d.

* Revert "fix"

This reverts commit 9f6bee14a089ffb76ff7b64988c34c004e417d63.

* fix test

* cleaner

* nit

Co-authored-by: zerosnacks <[email protected]>

---------

Co-authored-by: zerosnacks <[email protected]>

* feat: add `vm.foundryVersionCmp` and `vm.foundryVersionAtLeast` cheatcodes (#9845)

* feat: add foundryVersionCmp and foundryVersionAtLeast cheatcode

* fix: change the acceptable version string in version cmp cheatcodes to major.minor.patch

---------

Co-authored-by: grandizzy <[email protected]>

* chore: version cmp cheatcodes clean up (#9914)

* fix: map 7623 to gas too high (#9915)

* chore: rotate keys (#9922)

Rotate

* feat(`cast`): add new `cast wallet remove` command (#9873)

* feat: add add new cast wallet remove command

* feat: add cast wallet remove test case with unsafe_password

---------

Co-authored-by: zerosnacks <[email protected]>

* feat(cheatcodes): add `expectCreate` and `expectCreate2` (#9875)

* add expectCreate and expectCreate2 cheatcodes

* add tests

* apply clippy fixes

* apply clippy fixes

* fix failing test

* fix failing test

* fix failing test

* fix failing test: use line wildcards

* add requested changes

* move nested creates to single test

* Fix test

---------

Co-authored-by: zerosnacks <[email protected]>
Co-authored-by: grandizzy <[email protected]>
Co-authored-by: grandizzy <[email protected]>

* chore(`cast`): add `4byte-calldata` alias (#9927)

* change 4byte-decode -> 4byte-calldata in non breaking way, 4byte-decode and shorthands are hidden aliases

* nit

* update test with alias for regression

* fix failing test due to args chaining

* fix(--isolate): avoid remappings lookups (#9938)

* fix(--isolate): avoid remappings lookups

* clippy

* fix(`--isolate`): correctly handle staticcalls (#9940)

* fix(isolate): correctly handle staticcalls

* fix fixtures

* chore(deps): weekly `cargo update` (#9936)

* fix(isolate): do not mark cold accounts with arbitrary storage (#9945)

* feat(anvil): add holocene and isthmus optimism hardforks (#9949)

* fix(anvil): reset cache path during anvil_reset without fork url (#9729)

* reset cache path during anvil_reset without fork url

* refactor

* comment typo

* fix base fee update

* fix test on windows, fmt

* abstract block number reset logic

* fix test deadlock

* update foundry-fork-db

* clippy

---------

Co-authored-by: grandizzy <[email protected]>
Co-authored-by: grandizzy <[email protected]>

* fix 4-bytecalldata (#9952)

* fix fourbytecalldata

* add test

* Override prevrandao on bsc (#9957)

* Override prevrandao on bsc

* Format code

* Fix clippy

* feat: add option to store keystore file with custom account name (#9946)

* feat: add option to store keystore file with custom account name

* fix rustfmt +nightly

---------

Co-authored-by: zerosnacks <[email protected]>

* fix(`forge`): `forge build --sizes` collapses non uniques (#9962)

* handle multiple contracts of the same name by including their stripped path

* add test case

* include dummy Foo contract to show it doesnt show the unique path for non-clashing names

* show path to source rather than path to artifact

* add json test

* fix fmt

* chore: fix 404 status URL (#9964)

Signed-off-by: looklose <[email protected]>

* chore: use HashMap::keys avoid unnecessary tuple unpacking (#9975)

* chore: change &Option<String> to Option<&str> (#9973)

* change &Option<String> to Option<&str>

* revert commit

* Update crates/forge/bin/cmd/inspect.rs

Co-authored-by: DaniPopes <[email protected]>

* fix fmt

---------

Co-authored-by: DaniPopes <[email protected]>

* fix(coverage): try/catch as branches, account for empty blocks (#9978)

* fix(script): apply configured evm-version for verify args (#9979)

* test(doc): added test case for doc comments & natspec (#9923)

test(doc): added testcase for doc comments & natspec

* fix(invariant): ignore persisted failure if different test contract (#9981)

* fix(invariant): ignore persisted failure if different test contract

* fix win test, canonicalize persisted file path, remove invariant config
clone

* Nit warn message

* ci: pin vyper (#9989)

* chore(deps): weekly `cargo update` (#9991)

Locking 47 packages to latest compatible versions
    Updating alloy-chains v0.1.62 -> v0.1.63
    Updating alloy-dyn-abi v0.8.21 -> v0.8.22
    Updating alloy-eip7702 v0.5.0 -> v0.5.1
    Updating alloy-json-abi v0.8.21 -> v0.8.22
    Updating alloy-primitives v0.8.21 -> v0.8.22
    Updating alloy-sol-macro v0.8.21 -> v0.8.22
    Updating alloy-sol-macro-expander v0.8.21 -> v0.8.22
    Updating alloy-sol-macro-input v0.8.21 -> v0.8.22
    Updating alloy-sol-type-parser v0.8.21 -> v0.8.22
    Updating alloy-sol-types v0.8.21 -> v0.8.22
    Updating async-compression v0.4.18 -> v0.4.20
    Updating aws-config v1.5.16 -> v1.5.17
    Updating aws-sdk-kms v1.60.0 -> v1.61.0
    Updating aws-sdk-sso v1.59.0 -> v1.60.0
    Updating aws-sdk-ssooidc v1.60.0 -> v1.61.0
    Updating aws-sdk-sts v1.60.0 -> v1.61.0
   Unchanged axum v0.7.9 (available: v0.8.1)
   Unchanged backtrace v0.3.71 (available: v0.3.74)
    Updating bitflags v2.8.0 -> v2.9.0
    Updating bzip2 v0.4.4 -> v0.5.2
    Updating bzip2-sys v0.1.12+1.0.8 -> v0.1.13+1.0.8
    Updating cc v1.2.15 -> v1.2.16
    Updating chrono v0.4.39 -> v0.4.40
    Updating clap v4.5.30 -> v4.5.31
    Updating clap_builder v4.5.30 -> v4.5.31
    Updating clap_complete v4.5.45 -> v4.5.46
    Updating console v0.15.10 -> v0.15.11
      Adding derive_more v2.0.1
   Unchanged derive_more v1.0.0 (available: v2.0.1)
      Adding derive_more-impl v2.0.1
    Updating either v1.13.0 -> v1.14.0
   Unchanged evmole v0.6.2 (available: v0.7.2)
    Updating flate2 v1.0.35 -> v1.1.0
    Updating globset v0.4.15 -> v0.4.16
    Updating libc v0.2.169 -> v0.2.170
    Updating litemap v0.7.4 -> v0.7.5
    Updating op-alloy-consensus v0.10.5 -> v0.10.7
    Updating op-alloy-rpc-types v0.10.5 -> v0.10.7
    Updating portable-atomic v1.10.0 -> v1.11.0
   Unchanged protobuf v3.3.0 (available: v3.7.1)
   Unchanged protobuf-support v3.3.0 (available: v3.7.1)
   Unchanged rand v0.8.5 (available: v0.9.0)
    Updating rand_core v0.9.2 -> v0.9.3
    Updating schemars v0.8.21 -> v0.8.22
    Updating schemars_derive v0.8.21 -> v0.8.22
    Updating similar-asserts v1.6.1 -> v1.7.0
   Unchanged solang-parser v0.3.3 (available: v0.3.4)
    Updating syn-solidity v0.8.21 -> v0.8.22
    Updating tokio-rustls v0.26.1 -> v0.26.2
    Updating uuid v1.14.0 -> v1.15.1
   Unchanged vergen v8.3.2 (available: v9.0.4)
   Unchanged watchexec v5.0.0 (available: v6.0.0)
   Unchanged watchexec-events v4.0.0 (available: v5.0.0)
    Updating zerocopy v0.8.20 -> v0.8.21
    Updating zerocopy-derive v0.8.20 -> v0.8.21
    Updating zerofrom v0.1.5 -> v0.1.6
    Updating zerofrom-derive v0.1.5 -> v0.1.6
    Updating zip v2.2.2 -> v2.2.3
note: to see how you depend on a package, run `cargo tree --invert --package <dep>@<ver>`

Co-authored-by: mattsse <[email protected]>

* fix(`ci`): clippy, allow result too large (#9999)

fix clippy for ci, small opts

* chore: move nightly build to 6 AM UTC for improved monitoring of release process (#9997)

* move nightly build to 7 am UTC

* move to 6 am

* fix: `forge script --verifier sourcify` is ignored when `ETHERSCAN_API_KEY` env var is defined (#10002)

* re-order verification picker to prefer explicit --verifier, falling back to Etherscan if the API key is passed and no --verifier is passed

* add additional tests to cover different cases

* clarify tests

* fix fmt

* improve error message for final bail condition to point into the right direction

* fix(receipt): use `from` address (#9998)

When calling `cast receipt`, the failure reason is generated via
`eth_call`. However, the `from` address during this call is not
correctly set to the one in the transaction. This leads to spurious
"Ownable: caller is not the owner" errors, which do not represent the
true failure reason for the transaction. This PR fixes that issue.

Added a unit test for a Sepolia transaction to capture this case.
Without the PR, the revert reason was incorrectly reported as "Ownable:
caller is not the owner" instead of the actual revert reason "Counter is
too large"

Co-authored-by: zerosnacks <[email protected]>

* fix(cast): allow user to disable block gas limit check in cast run (#9996)

In Ronin[1] and BSC[2], there are system transactions which have gas limit higher
than block gas limit. This commit adds --disable-block-gas-limit flag to cast
run so that user can trace those transactions.

[1]: https://app.roninchain.com/tx/0x8323b1843da7e8c61be697b35885bf492f8ec30e4413aa32b629371733df60d7
[2]: https://bscscan.com/tx/0x2362c464510d39247b0718d661224c5b5d369e543a88eefb260c798dcda2624e

Co-authored-by: zerosnacks <[email protected]>

* fix(forge): avoid etch panic on invalid bytecode (#10006)

* fix(verfy): add blockscout exception for resp status 0 when contract not indexed (#10008)

fix(verfy): chiado blockscout exception, resp status 0 when contract not indexed yet

* fix(forge): use float total cmp instead partial (#10005)

fix(forge): use total cmp instead partial

* fix(forge): do not panic if revert at same depth as start state recording (#10016)

* fix(cast): clarify docs for the cast call --data flag (#10014)

* chore(deps): weekly `cargo update` (#10026)

Locking 54 packages to latest compatible versions
    Updating alloy-chains v0.1.63 -> v0.1.64
    Updating anyhow v1.0.96 -> v1.0.97
    Updating async-trait v0.1.86 -> v0.1.87
    Updating aws-config v1.5.17 -> v1.5.18
    Updating aws-sdk-kms v1.61.0 -> v1.62.0
    Updating aws-sdk-sso v1.60.0 -> v1.61.0
    Updating aws-sdk-ssooidc v1.61.0 -> v1.62.0
    Updating aws-sdk-sts v1.61.0 -> v1.62.0
      Adding aws-smithy-http v0.61.1
   Unchanged axum v0.7.9 (available: v0.8.1)
   Unchanged backtrace v0.3.71 (available: v0.3.74)
    Updating bon v3.3.2 -> v3.4.0
    Updating bon-macros v3.3.2 -> v3.4.0
    Updating byte-slice-cast v1.2.2 -> v1.2.3
    Updating bytemuck v1.21.0 -> v1.22.0
    Updating bytes v1.10.0 -> v1.10.1
   Unchanged derive_more v1.0.0 (available: v2.0.1)
    Updating dyn-clone v1.0.18 -> v1.0.19
    Updating either v1.14.0 -> v1.15.0
   Unchanged evmole v0.6.2 (available: v0.7.2)
    Updating fd-lock v4.0.2 -> v4.0.3
    Updating hermit-abi v0.4.0 -> v0.5.0
    Updating httparse v1.10.0 -> v1.10.1
    Updating indoc v2.0.5 -> v2.0.6
    Updating is-terminal v0.4.15 -> v0.4.16
    Updating itoa v1.0.14 -> v1.0.15
    Updating jiff-tzdb v0.1.2 -> v0.1.3
      Adding linux-raw-sys v0.9.2
    Updating op-alloy-consensus v0.10.7 -> v0.10.9
    Updating op-alloy-rpc-types v0.10.7 -> v0.10.9
    Updating pin-project v1.1.9 -> v1.1.10
    Updating pin-project-internal v1.1.9 -> v1.1.10
    Updating pkg-config v0.3.31 -> v0.3.32
    Updating prettyplease v0.2.29 -> v0.2.30
    Updating proc-macro-crate v3.2.0 -> v3.3.0
    Updating proc-macro2 v1.0.93 -> v1.0.94
   Unchanged protobuf v3.3.0 (available: v3.7.1)
   Unchanged protobuf-support v3.3.0 (available: v3.7.1)
    Updating quote v1.0.38 -> v1.0.39
   Unchanged rand v0.8.5 (available: v0.9.0)
    Updating redox_syscall v0.5.9 -> v0.5.10
    Updating ring v0.17.11 -> v0.17.13
      Adding rustix v1.0.0
    Updating rustversion v1.0.19 -> v1.0.20
    Updating ryu v1.0.19 -> v1.0.20
    Updating semver v1.0.25 -> v1.0.26
    Updating serde_json v1.0.139 -> v1.0.140
    Updating serde_path_to_error v0.1.16 -> v0.1.17
    Updating serde_repr v0.1.19 -> v0.1.20
   Unchanged solang-parser v0.3.3 (available: v0.3.4)
    Updating syn v2.0.98 -> v2.0.99
    Updating tempfile v3.17.1 -> v3.18.0
    Updating textwrap v0.16.1 -> v0.16.2
    Updating thiserror v2.0.11 -> v2.0.12
    Updating thiserror-impl v2.0.11 -> v2.0.12
    Updating time v0.3.37 -> v0.3.39
    Updating time-core v0.1.2 -> v0.1.3
    Updating time-macros v0.2.19 -> v0.2.20
    Updating tinyvec v1.8.1 -> v1.9.0
    Updating unicode-ident v1.0.17 -> v1.0.18
   Unchanged vergen v8.3.2 (available: v9.0.4)
   Unchanged watchexec v5.0.0 (available: v6.0.0)
   Unchanged watchexec-events v4.0.0 (available: v5.0.0)
    Updating zerocopy v0.8.21 -> v0.8.23
    Updating zerocopy-derive v0.8.21 -> v0.8.23
note: to see how you depend on a package, run `cargo tree --invert --package <dep>@<ver>`

Co-authored-by: grandizzy <[email protected]>

* fix(forge): warn if file for artifact no longer exists (#10025)

* fix(forge): warn if file for artifact no longer exists

* Add test

* Single warning for all missing files

* chore(deps): bump alloy 0.12 (#10028)

* fix(forge): stack pranks, restore pranks at earlier call depths (#10018)

* chore: fix isolate tests (#10034)

* fix(docker): use cross main, build docker only on release (#10035)

fix(docker): use cross main instead 0.2.5

* chore(deps): weekly `cargo update` (#10039)

* fix(forge): base url for verification providers other than etherscan (#10045)

fix(forge): base url for custom verification providers type

* chore(cast): upgrade evmole to 0.7.2 (#10048)

* fix deny.toml, ignore RUSTSEC-2025-0014 (#10052)

* fix deny.toml, ignore RUSTSEC-2025-0014

* roll back allow-git

* update derive_more to 2.0 (#9987)

* chore: fix ci, bump python setup version (#10054)

Bump gh python setup version

* feat(forge): match chain id with token symbol (#10043)

* feat: match chain id with token symbol

* fix: change symbol from matic to pol

* fix: use NameChain instead of manual mapping

* Fix tests, fmt and clippy

---------

Co-authored-by: grandizzy <[email protected]>
Co-authored-by: grandizzy <[email protected]>

* feat(cast): storage add --proxy to manually specify a proxy contract when Etherscan fails to find it (#10033)

* Adding a proxy parameter to the cast storage command, allowing manual selection of a proxy address to retrieve the full storage layout.

* Adding tests for the cast storage proxy optional argument.

* Using if let some else pattern.

* Improved documentation.

---------

Co-authored-by: grandizzy <[email protected]>

* fix(forge): use etherscan verifier if key provided (#10058)

* fix(forge): use etherscan if key provided

* Changes after review: expose is_sourcify and is_etherscan fns

* update watchexec to 6.0, watchexec-events to 5.0 (#9988)

* fix(forge): redact pk in signDelegation* traces (#10061)

* chore: fix CI, remove totalDifficulty (#10071)

* fix CI: remove totalDifficulty

* ignore cast run impersonated tx test

* chore(cli): fix clap deprecated warnings (#10075)

* fix

* fix

---------

Co-authored-by: grandizzy <[email protected]>

* feat(forge): allow path in forge selectors upload (#10073)

* feat(forge): allow path in forge selectors upload

* Changes after review: reuse PathOrContractInfo

* feat: add `x86_64-musl` and `aarch64-musl` release targets (#9984)

* feat: add `x86_64` and `aarch64` musl targets

* feat: update nextest matrices

* try with aarch64 targets

* feat: define granular linux targets and restore `aarch64` one

* revert `matrices.py` file

* chore: reenable impersonate test (#10076)

* feat: solc 0.8.29 (#10078)

* feat: solc 0.8.29

* update match

* chore: fix ci (#10092)

Rotate

* chore(deps): weekly `cargo update` (#10088)

Locking 90 packages to latest compatible versions
    Updating alloy-consensus v0.12.4 -> v0.12.5
    Updating alloy-consensus-any v0.12.4 -> v0.12.5
    Updating alloy-contract v0.12.4 -> v0.12.5
    Updating alloy-dyn-abi v0.8.22 -> v0.8.23
    Updating alloy-eips v0.12.4 -> v0.12.5
    Updating alloy-genesis v0.12.4 -> v0.12.5
    Updating alloy-json-abi v0.8.22 -> v0.8.23
    Updating alloy-json-rpc v0.12.4 -> v0.12.5
    Updating alloy-network v0.12.4 -> v0.12.5
    Updating alloy-network-primitives v0.12.4 -> v0.12.5
    Updating alloy-node-bindings v0.12.4 -> v0.12.5
    Updating alloy-primitives v0.8.22 -> v0.8.23
    Updating alloy-provider v0.12.4 -> v0.12.5
    Updating alloy-pubsub v0.12.4 -> v0.12.5
    Updating alloy-rpc-client v0.12.4 -> v0.12.5
    Updating alloy-rpc-types v0.12.4 -> v0.12.5
    Updating alloy-rpc-types-anvil v0.12.4 -> v0.12.5
    Updating alloy-rpc-types-any v0.12.4 -> v0.12.5
    Updating alloy-rpc-types-debug v0.12.4 -> v0.12.5
    Updating alloy-rpc-types-engine v0.12.4 -> v0.12.5
    Updating alloy-rpc-types-eth v0.12.4 -> v0.12.5
    Updating alloy-rpc-types-trace v0.12.4 -> v0.12.5
    Updating alloy-rpc-types-txpool v0.12.4 -> v0.12.5
    Updating alloy-serde v0.12.4 -> v0.12.5
    Updating alloy-signer v0.12.4 -> v0.12.5
    Updating alloy-signer-aws v0.12.4 -> v0.12.5
    Updating alloy-signer-gcp v0.12.4 -> v0.12.5
    Updating alloy-signer-ledger v0.12.4 -> v0.12.5
    Updating alloy-signer-local v0.12.4 -> v0.12.5
    Updating alloy-signer-trezor v0.12.4 -> v0.12.5
    Updating alloy-sol-macro v0.8.22 -> v0.8.23
    Updating alloy-sol-macro-expander v0.8.22 -> v0.8.23
    Updating alloy-sol-macro-input v0.8.22 -> v0.8.23
    Updating alloy-sol-type-parser v0.8.22 -> v0.8.23
    Updating alloy-sol-types v0.8.22 -> v0.8.23
    Updating alloy-transport v0.12.4 -> v0.12.5
    Updating alloy-transport-http v0.12.4 -> v0.12.5
    Updating alloy-transport-ipc v0.12.4 -> v0.12.5
    Updating alloy-transport-ws v0.12.4 -> v0.12.5
    Updating ariadne v0.5.0 -> v0.5.1
    Updating async-compression v0.4.20 -> v0.4.21
    Updating async-trait v0.1.87 -> v0.1.88
    Updating aws-config v1.5.18 -> v1.6.0
    Updating aws-credential-types v1.2.1 -> v1.2.2
      Adding aws-lc-rs v1.12.6
      Adding aws-lc-sys v0.27.1
    Updating aws-runtime v1.5.5 -> v1.5.6
    Updating aws-sdk-kms v1.62.0 -> v1.63.0
    Updating aws-sdk-sso v1.61.0 -> v1.62.0
    Updating aws-sdk-ssooidc v1.62.0 -> v1.63.0
    Updating aws-sdk-sts v1.62.0 -> v1.63.0
    Updating aws-sigv4 v1.2.9 -> v1.3.0
    Removing aws-smithy-http v0.60.12
    Removing aws-smithy-http v0.61.1
    Updating aws-types v1.3.5 -> v1.3.6
   Unchanged axum v0.7.9 (available: v0.8.1)
   Unchanged backtrace v0.3.71 (available: v0.3.74)
    Updating base64ct v1.7.1 -> v1.7.3
      Adding bindgen v0.69.5
      Adding cexpr v0.6.0
      Adding clang-sys v1.8.1
      Adding cmake v0.1.54
    Removing core-foundation v0.9.4
    Updating foldhash v0.1.4 -> v0.1.5
    Updating foundry-block-explorers v0.11.0 -> v0.11.2
    Removing h2 v0.3.26
    Updating half v2.4.1 -> v2.5.0
    Updating handlebars v6.3.1 -> v6.3.2
    Updating http v1.2.0 -> v1.3.1
    Updating http-body-util v0.1.2 -> v0.1.3
    Updating humantime v2.1.0 -> v2.2.0
    Removing hyper v0.14.32
    Removing hyper-rustls v0.24.2
      Adding itertools v0.12.1
      Adding jobserver v0.1.32
      Adding lazycell v1.3.0
    Updating libc v0.2.170 -> v0.2.171
      Adding libloading v0.8.6
    Updating linux-raw-sys v0.9.2 -> v0.9.3
      Adding macro-string v0.1.4
    Updating once_cell v1.21.0 -> v1.21.1
    Updating op-alloy-consensus v0.11.0 -> v0.11.2
    Updating op-alloy-rpc-types v0.11.0 -> v0.11.2
    Updating prettyplease v0.2.30 -> v0.2.31
    Updating prodash v29.0.0 -> v29.0.1
   Unchanged protobuf v3.3.0 (available: v3.7.2)
   Unchanged protobuf-support v3.3.0 (available: v3.7.2)
    Updating quote v1.0.39 -> v1.0.40
   Unchanged rand v0.8.5 (available: v0.9.0)
    Updating reqwest v0.12.12 -> v0.12.14
    Updating ring v0.17.13 -> v0.17.14
      Adding rustc-hash v1.1.0
    Removing rustls v0.21.12
    Removing rustls-native-certs v0.6.3
    Removing rustls-pemfile v1.0.4
    Removing rustls-webpki v0.101.7
    Removing sct v0.7.1
    Removing security-framework v2.11.1
   Unchanged solang-parser v0.3.3 (available: v0.3.4)
    Updating syn-solidity v0.8.22 -> v0.8.23
    Updating tempfile v3.18.0 -> v3.19.0
    Updating tokio v1.44.0 -> v1.44.1
    Removing tokio-rustls v0.24.1
    Updating tokio-util v0.7.13 -> v0.7.14
    Updating uuid v1.15.1 -> v1.16.0
   Unchanged vergen v8.3.2 (available: v9.0.4)
      Adding which v4.4.2
    Updating widestring v1.1.0 -> v1.2.0
    Updating windows-registry v0.2.0 -> v0.4.0
    Updating winnow v0.7.3 -> v0.7.4
note: to see how you depend on a package, run `cargo tree --invert --package <dep>@<ver>`

Co-authored-by: mattsse <[email protected]>
Co-authored-by: grandizzy <[email protected]>

* fix: build alpine/musl with cross (#10086)

* fix: build apline with cross

* Install cross from main

* Update .github/workflows/release.yml

Co-authored-by: DaniPopes <[email protected]>

* Specify alpine platform

---------

Co-authored-by: DaniPopes <[email protected]>

* chore: fix target check for musl (#10093)

* fix(`forge test --debug`): do not panic when user specifies both `--match-path` and `<PATH>` , bail instead (#10094)

cleanly exit instead of panic

* docs: edited a dead link in `precompiles.rs` (#10049)

Update dead link in `precompiles.rs`

Co-authored-by: zerosnacks <[email protected]>

* chore: fix release (#10098)

* Bump release runners to 22.04

* Fix docker release: downgrade cross

* feat(anvil): add genesis number to configuration and update related structures (#10083)

* feat: add genesis number to configuration and update related structures

- Introduced `genesis.number` in `GenesisConfig` to store the genesis block number.
- Added `get_genesis_number` method to retrieve the genesis number.
- Updated `setup` function to initialize the genesis number.
- Modified `BlockchainStorage` and `Blockchain` constructors to accept and utilize the genesis number.
- Adjusted tests to reflect the new genesis number functionality.

* Fix fmt

---------

Co-authored-by: grandizzy <[email protected]>
Co-authored-by: grandizzy <[email protected]>

* chore: fix release - revert updates (#10107)

* Revert "chore: fix release (#10098)"

This reverts commit 8d482d523143fe1413d6fb6095443a3cf9a54ce2.

* Revert "chore(deps): weekly `cargo update` (#10088)"

This reverts commit a7e3421c6e0101b1e6494b3b2ac770dcfdadab5f.

* Cross not from main

* fix clippy

* chore: bump svm-rs (#10111)

bump svm-rs

* Update to soldeer 0.5.3 (#10110)

* release v0.5.3 of soldeer

* removed clap dep, fmt and solved tests

* matching foundry's verbosity

* feat(`cast`): make unsigned raw txs (#10105)

* chore: rotate (#10120)

* fix(forge): clone src with node_modules (#10119)

* feat(forge): add accessList and cold/warm cheatcodes (#10112)

* feat(forge): add cold/warm cheatcodes

* Add accessList cheatcode

* Add comment, apply default acess list only if option is some

* chore: run ci tests only if clippy/fmt/deny success (#10127)

* chore: rename vm.coolSlot/warmSlot, fix flaky test (#10128)

* docs: misc miner comments (#10125)

* docs: misc miner comments

* clippy

* chore: cleanup eof support (#10081)

* chore: cleanup eof test

* Remove EOF docker

* Changes after review: imrpove test, add back version

* chore: refactor `forge` for library use (#10117)

* chore: refactor `cast` for library use (#10123)

* chore: remove unused dependencies (#10132)

remove redundant redeps, prefer workspace for indicatif

* chore: clean up features, add features in CI (#10096)

* chore: clean up features, add features in CI

* doc

* chore: refactor `anvil` for library use (#10130)

* make `anvil` easier accessible as a library

* clean up

* doc nits

* Revert "chore: refactor `anvil` for library use" (#10135)

Revert "chore: refactor `anvil` for library use (#10130)"

This reverts commit 21bf35b62948741719622b1abde22768d24238f8.

* add cast wallet change password command (#10089)

* add cast wallet change wallet

* no need delete, just overwrite file

* add test

---------

Co-authored-by: grandizzy <[email protected]>
Co-authored-by: zerosnacks <[email protected]>

* chore: remove experimental from cheatcodes (#10137)

* chore: accessList sig compatible with solc <= 0.8.0 (#10141)

* chore: refactor `anvil` for library use (#10139)

* make `anvil` easier accessible as a library

* clean up

* doc nits

* fix build issue

* chore: refactor `chisel` for library use (#10142)

make `chisel` library compatible

* test: increase weight for urls (#10148)

test: increase weight for keys

* chore: include all available keys (#10147)

* feat: add explicit_iter_loop clippy lint (#10146)

* feat(forge build): add `--use-literal-content` CLI flag (#10143)

Co-authored-by: DaniPopes <[email protected]>

* chore: improve ci (#10152)

* chore: improve ci - reth and drpc

* Fix flaky

* New drpc

* fix(forge init): handle github.com/ prefixed templates (#10151)

* Replace `#[allow()]` with `#[expect()]` (#10131)

* Replace `#[allow()]` with `#[expect()]`

* Remove unfulfilled `#[expect()]` and revert one that can't be changed

* Revert to allow[()] on large enums

* Keep `#[expect()]`` on large enums

* Keep `#[expect()]` on large enums

* Fix all CI

* Fix all CI

* Fix all CI

* Replace #[expect()] with #[allow()]

* Fix CI failure

---------

Co-authored-by: grandizzy <[email protected]>

* feat(cast): add `cast txpool` (#10104)

* feat(cast): txpool inspection utils

* fix: typo

* chore: cleanup

* clippy

---------

Co-authored-by: Matthias Seitz <[email protected]>

* fix(forge): bail if forge create contract with empty bytecode (#10159)

fix(forge): err if forge create contract with empty bytecode

* fix(cast): send should not panic on revert decoding (#10155)

* fix(forge): respect --optimize flag when verify with forge create (#10163)

* fix: Use the unused skip_extra_derives bind argument (#10099)

Co-authored-by: Yash Atreya <[email protected]>

* chore: add archive BSC RPC support in test suite (#10004)

* add bnb, currently API keys have not enabled the app

* add https://github.com/foundry-rs/foundry/pull/9996 test

* given BSC archive node is not available, even testnet, workaround by fetching latest excessive gas transaction (system tx) in the latest block and running against that

* chore(deps): weekly `cargo update` (#10158)

* chore(deps): weekly `cargo update`

     Locking 119 packages to latest compatible versions
    Updating alloy-chains v0.1.64 -> v0.1.66
    Updating alloy-consensus v0.12.4 -> v0.12.6
    Updating alloy-consensus-any v0.12.4 -> v0.12.6
    Updating alloy-contract v0.12.4 -> v0.12.6
    Updating alloy-dyn-abi v0.8.22 -> v0.8.24
    Updating alloy-eips v0.12.4 -> v0.12.6
    Updating alloy-genesis v0.12.4 -> v0.12.6
    Updating alloy-json-abi v0.8.22 -> v0.8.24
    Updating alloy-json-rpc v0.12.4 -> v0.12.6
    Updating alloy-network v0.12.4 -> v0.12.6
    Updating alloy-network-primitives v0.12.4 -> v0.12.6
    Updating alloy-primitives v0.8.22 -> v0.8.24
    Updating alloy-provider v0.12.4 -> v0.12.6
    Updating alloy-pubsub v0.12.4 -> v0.12.6
    Updating alloy-rpc-client v0.12.4 -> v0.12.6
    Updating alloy-rpc-types v0.12.4 -> v0.12.6
    Updating alloy-rpc-types-anvil v0.12.4 -> v0.12.6
    Updating alloy-rpc-types-any v0.12.4 -> v0.12.6
    Updating alloy-rpc-types-debug v0.12.4 -> v0.12.6
    Updating alloy-rpc-types-engine v0.12.4 -> v0.12.6
    Updating alloy-rpc-types-eth v0.12.4 -> v0.12.6
    Updating alloy-rpc-types-trace v0.12.4 -> v0.12.6
    Updating alloy-rpc-types-txpool v0.12.4 -> v0.12.6
    Updating alloy-serde v0.12.4 -> v0.12.6
    Updating alloy-signer v0.12.4 -> v0.12.6
    Updating alloy-signer-aws v0.12.4 -> v0.12.6
    Updating alloy-signer-gcp v0.12.4 -> v0.12.6
    Updating alloy-signer-ledger v0.12.4 -> v0.12.6
    Updating alloy-signer-local v0.12.4 -> v0.12.6
    Updating alloy-signer-trezor v0.12.4 -> v0.12.6
    Updating alloy-sol-macro v0.8.22 -> v0.8.24
    Updating alloy-sol-macro-expander v0.8.22 -> v0.8.24
    Updating alloy-sol-macro-input v0.8.22 -> v0.8.24
    Updating alloy-sol-type-parser v0.8.22 -> v0.8.24
    Updating alloy-sol-types v0.8.22 -> v0.8.24
    Updating alloy-transport v0.12.4 -> v0.12.6
    Updating alloy-transport-http v0.12.4 -> v0.12.6
    Updating alloy-transport-ipc v0.12.4 -> v0.12.6
    Updating alloy-transport-ws v0.12.4 -> v0.12.6
    Updating ariadne v0.5.0 -> v0.5.1
    Updating async-compression v0.4.20 -> v0.4.21
    Updating async-trait v0.1.87 -> v0.1.88
    Updating aws-config v1.5.18 -> v1.6.0
    Updating aws-credential-types v1.2.1 -> v1.2.2
      Adding aws-lc-rs v1.12.6
      Adding aws-lc-sys v0.27.1
    Updating aws-runtime v1.5.5 -> v1.5.6
    Updating aws-sdk-kms v1.62.0 -> v1.63.0
    Updating aws-sdk-sso v1.61.0 -> v1.62.0
    Updating aws-sdk-ssooidc v1.62.0 -> v1.63.0
    Updating aws-sdk-sts v1.62.0 -> v1.63.0
    Updating aws-sigv4 v1.2.9 -> v1.3.0
    Removing aws-smithy-http v0.60.12
    Removing aws-smithy-http v0.61.1
    Updating aws-types v1.3.5 -> v1.3.6
   Unchanged axum v0.7.9 (available: v0.8.1)
   Unchanged backtrace v0.3.71 (available: v0.3.74)
    Updating base64ct v1.7.1 -> v1.7.3
      Adding bindgen v0.69.5
    Updating bon v3.4.0 -> v3.5.1
    Updating bon-macros v3.4.0 -> v3.5.1
    Updating cc v1.2.16 -> v1.2.17
      Adding cexpr v0.6.0
      Adding clang-sys v1.8.1
    Updating clap_complete v4.5.46 -> v4.5.47
      Adding cmake v0.1.54
    Updating deranged v0.3.11 -> v0.4.0
    Updating foldhash v0.1.4 -> v0.1.5
    Updating foundry-block-explorers v0.11.0 -> v0.11.2
    Updating gcloud-sdk v0.26.3 -> v0.26.4
    Updating getrandom v0.3.1 -> v0.3.2
    Removing h2 v0.3.26
    Updating half v2.4.1 -> v2.5.0
    Updating handlebars v6.3.1 -> v6.3.2
    Updating http v1.2.0 -> v1.3.1
    Updating http-body-util v0.1.2 -> v0.1.3
    Updating humantime v2.1.0 -> v2.2.0
    Removing hyper v0.14.32
    Removing hyper-rustls v0.24.2
    Updating inferno v0.12.1 -> v0.12.2
      Adding itertools v0.12.1
      Adding jobserver v0.1.32
      Adding lazycell v1.3.0
    Updating libc v0.2.170 -> v0.2.171
      Adding libloading v0.8.6
    Updating linux-raw-sys v0.9.2 -> v0.9.3
      Adding macro-string v0.1.4
    Updating once_cell v1.21.0 -> v1.21.1
    Updating op-alloy-consensus v0.11.0 -> v0.11.2
    Updating op-alloy-rpc-types v0.11.0 -> v0.11.2
    Updating prettyplease v0.2.30 -> v0.2.31
    Updating prodash v29.0.0 -> v29.0.1
   Unchanged protobuf v3.3.0 (available: v3.7.2)
   Unchanged protobuf-support v3.3.0 (available: v3.7.2)
    Updating quinn v0.11.6 -> v0.11.7
    Updating quinn-proto v0.11.9 -> v0.11.10
    Updating quote v1.0.39 -> v1.0.40
      Adding r-efi v5.2.0
   Unchanged rand v0.8.5 (available: v0.9.0)
    Updating reqwest v0.12.12 -> v0.12.15
    Updating revm v19.6.0 -> v19.7.0
    Updating revm-precompile v16.1.0 -> v16.2.0
    Updating ring v0.17.13 -> v0.17.14
      Adding rustc-hash v1.1.0
    Updating rustix v1.0.2 -> v1.0.3
    Removing rustls v0.21.12
    Removing rustls v0.23.23
      Adding rustls v0.23.25
    Removing rustls-native-certs v0.6.3
    Removing rustls-pemfile v1.0.4
    Removing rustls-webpki v0.101.7
    Removing rustls-webpki v0.102.8
      Adding rustls-webpki v0.103.0
    Removing sct v0.7.1
    Removing security-framework v2.11.1
   Unchanged solang-parser v0.3.3 (available: v0.3.4)
    Updating svm-rs-builds v0.5.13 -> v0.5.14
    Updating syn-solidity v0.8.22 -> v0.8.24
    Updating tempfile v3.18.0 -> v3.19.1
    Updating time v0.3.39 -> v0.3.40
    Updating time-core v0.1.3 -> v0.1.4
    Updating time-macros v0.2.20 -> v0.2.21
    Updating tokio v1.44.0 -> v1.44.1
    Removing tokio-rustls v0.24.1
    Updating tokio-util v0.7.13 -> v0.7.14
      Adding tracing-futures v0.2.5
    Updating uuid v1.15.1 -> v1.16.0
   Unchanged vergen v8.3.2 (available: v9.0.4)
    Updating wasi v0.13.3+wasi-0.2.2 -> v0.14.2+wasi-0.2.4
      Adding which v4.4.2
    Updating widestring v1.1.0 -> v1.2.0
    Updating windows-interface v0.59.0 -> v0.59.1
    Updating windows-link v0.1.0 -> v0.1.1
    Updating windows-registry v0.2.0 -> v0.4.0
    Updating windows-result v0.3.1 -> v0.3.2
    Updating winnow v0.7.3 -> v0.7.4
    Updating wit-bindgen-rt v0.33.0 -> v0.39.0
    Updating zerocopy v0.8.23 -> v0.8.24
    Updating zerocopy-derive v0.8.23 -> v0.8.24
    Updating zip v2.4.1 -> v2.4.2
note: to see how you depend on a package, run `cargo tree --invert --package <dep>@<ver>`

* chore: release for latest cargo updates (#10168)

* …
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-forge Command: forge T-bug Type: bug
Projects
Status: Completed
Development

Successfully merging this pull request may close these issues.

bug: forge snapshot --diff panic when using named return variable
2 participants